[CloudWatch]グラフの確認方法と確認できるグラフ一覧(EC2/ELB/RDS)
はじめに
システムを管理し健全性を維持するためには、機器やサービスなどの稼働状況を確認する死活監視と共に、CPUやメモリ、ディスクなどの各リソースの使用状況をモニタリングして負荷を把握したり適切な増強を行う、リソース監視が欠かせません。
高機能な監視ソフトウェアでは死活監視や性能監視などと共にリソース監視の機能を有していますが、簡易なものであればAWSのサービスであるCloudWatchを使って代用することが出来ます。
そこで、AWSの代表的なサービスであるEC2・ELB・RDSについて、CloudWatchでどのようなリソースをグラフとして確認出来るのか、まとめてみました。
なお、AWSにおいてリソースとはEC2やELB、RDSなどのAWSクラウドリソースを指し、CPUやメモリなどに関する各種データを「時間単位でのデータ集合」に加工したものをメトリクスと言います。なのでAWS用語で言うと「CloudWatchでグラフ出力可能な標準メトリクス一覧」です。
CloudWatchの技術的に細かい点については横田慎介さんの「CloudWatchの使い方 | SlideShare」をご参照下さい:)
注意
CloudWatchの統計は2週間しか記録されません。このため長期的なリソース分析には向きません。月スパン、年スパンでリソース分析を行う場合は、Zabbixなどの高機能な監視ソフトウェアをオススメします。
(ex: Amazon LinuxにZabbix2.0.9をインストールしてみた | Developers.IO)
グラフの確認方法
AWSマネージメントコンソールのトップメニューから[CloudWatch]をクリックします。
左側のメニューから、グラフを表示したい対象のAWSリソースを左クリックします。
以下の画面では[EC2]をクリックした状態です。右側に各インスタンスのIDとメトリクス名が表示されます。グラフを表示したいメトリクスのチェックボックスをクリックしてチェックします。
すると画面右下にグラフが表示されます。[Average]と表示されているドロップダウンボックスが、各生データの集計方式(Statistics)を指します。平均(Average)、最小値(Minimum)、最大値(Maximum)、合計(Sum)が選択出来ます。データサンプル数(Data Samples)だけが少し特殊で、サンプルとして取得したデータの数なので、CPUやメモリなどの使用状況を確認する上ではあまり確認することは無いと思います。
[5 Minutes]の下に表示されている各時間は、各生データの集計期間(Period)を指します。
Statisticsが[Average]でPeriodが[5 Minutes]であれば、「5分間の平均値」であり、[Maximum]+[1 Hour]であれば「1時間ごとの最大値」です。確認するデータの種類によって適切な集計方式が違いますので注意が必要です。
グラフの右側にある[Time Range]欄で画面表示を切り替えることが出来ます。[Zoom]がグラフの時間軸で、1時間から2週間の範囲で切り替えることが出来ます。[Relative]タブでは、開始点と終了点を「何分前」「何時間前」「何日前」と指定することが出来ます。
[Absolute]タブでは、開始点と終了点を「何年何月何日の何時何分」という形式で指定することが出来ます。
また、初期表示では日時がUTC(GMT)表示となっていますが、AWSマネージメントコンソールにアクセスしているPCのローカル時間設定に合わせることが出来ます。
EC2の標準メトリクス一覧
メトリクス | 内容 | 単位 |
CPUUtilization | CPU使用率 | パーセント |
DiskReadOps | ディスク読み取り数 | 数 |
DiskWriteOps | ディスク書き込み数 | 数 |
DiskReadBytes | ディスク読み取り量 | Bytes |
DiskWriteBytes | ディスク書き込み量 | Bytes |
NetworkIn | ネットワーク受信量 | Bytes |
NetworkOut | ネットワーク送信量 | Bytes |
StatusCheckFailed | インスタンスステータスチェックかシステムステータスチェックのどちらかが失敗した場合1になる。 | 0(成功) 1(失敗) |
StatusCheckFailed_Instance | インスタンスステータスチェックは、個々のEC2インスタンスのソフトウェアやネットワークの状態確認。失敗した場合1になる。 | 0(成功) 1(失敗) |
StatusCheckFailed_System | システムステータスチェックは、EC2インスタンスに必要なAWSシステムの状態確認。失敗した場合1になる。 | 0(成功) 1(失敗) |
ELBの標準メトリクス一覧
ELBのメトリクスについては「ELBの挙動とCloudWatchメトリクスの読み方を徹底的に理解する | Developers.IO」という記事がありますのでそちらをご参照下さい:)
RDSの標準メトリクス一覧
メトリクス | 内容 | 単位 |
BinLogDiskUsage | マスターのバイナリログのサイズ | Bytes |
CPUUtilization | CPU使用率 | パーセント |
DatabaseConnections | DBコネクション数 | 数 |
DiskQueueDepth | ディスクI/Oキュー数 | 数 |
FreeableMemory | 空きメモリ量 | Bytes |
FreeStorageSpace | 空きディスクスペース量 | Bytes |
ReplicaLag | リードレプリカのタイムラグ | 秒 |
SwapUsage | スワップ使用量 | Bytes |
ReadIOPS | 読み込みIOPS | 数/秒 |
WriteIOPS | 書き込みIOPS | 数/秒 |
ReadLatency | 読み込みレイテンシ | 秒 |
WriteLatency | 書き込みレイテンシ | 秒 |
ReadThroughput | 読み込みスループット | bytes/秒 |
WriteThroughput | 書き込みスループット | bytes/秒 |
まとめ
AWSのWebサイトに記載されている通り、CloudWatchの主な役割は「最新の統計にアクセスする、グラフを表示する、そしてアラームを設定する」です。このため先述した通り、長期的なモニタリングと分析には向きません。しかし「現在面及び直近時間帯の状態の確認」を目的とすれば、とてもたくさんの情報を取得することが出来ます。
今回ご紹介した3つのAWSリソース以外にも、Amazon EBSやAuto Scalingなど様々なAWSリソースのメトリクスが用意されていますので、高機能な監視ソフトウェアの前にAWSのサービスだけで出来ることが無いか検討してみると良いのでは無いでしょうか。